package com.example.mapper;


import com.example.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

/**
 * 用户信息Mapper接口
 * 使用MyBatis注解方式实现数据库操作
 */
@Mapper  // 标识这是MyBatis的Mapper接口，MyBatis会为其生成代理实现类
public interface UserInfoMapper {

    /**
     * 根据用户名查询用户信息
     * @param name 用户名
     * @return 用户信息
     */
    @Select("select id, user_name, `password`, delete_flag, create_time, update_time " +
            "from user_info where delete_flag=0 and user_name=#{name}")
    UserInfo queryUserByName(String name);
    // SQL说明：
    // 1. select明确指定查询字段，避免不必要的字段传输
    // 2. `password`使用反引号，因为password是MySQL的保留字
    // 3. delete_flag=0 表示只查询未删除的记录（逻辑删除）
    // 4. #{name}是MyBatis参数占位符，会自动进行参数绑定和SQL注入防护
}